#!/bin/bash

# DevOps平台服务器启动脚本
# 使用daphne启动ASGI服务器以支持WebSocket连接

echo "🚀 启动DevOps平台服务器..."

# 检查虚拟环境
if [ ! -d "venv" ]; then
    echo "❌ 虚拟环境不存在，请先创建虚拟环境"
    exit 1
fi

# 激活虚拟环境
echo "📦 激活虚拟环境..."
source venv/bin/activate

# 检查必要的包
echo "🔍 检查依赖包..."
python -c "import channels, daphne" 2>/dev/null
if [ $? -ne 0 ]; then
    echo "❌ 缺少必要的依赖包 (channels, daphne)"
    echo "请运行: pip install channels daphne"
    exit 1
fi

# 停止现有的服务器进程
echo "🛑 停止现有的服务器进程..."
pkill -f "python manage.py runserver" 2>/dev/null
pkill -f "daphne.*devops_platform.asgi" 2>/dev/null

# 等待进程完全停止
sleep 2

# 检查数据库迁移
echo "🗄️ 检查数据库迁移..."
python manage.py migrate --check 2>/dev/null
if [ $? -ne 0 ]; then
    echo "⚠️ 需要执行数据库迁移"
    python manage.py migrate
fi

# 启动ASGI服务器
echo "🌐 启动ASGI服务器 (支持WebSocket)..."
echo "服务器地址: http://0.0.0.0:8000"
echo "WebSocket支持: ✅"
echo "按 Ctrl+C 停止服务器"
echo "=========================="

# 使用daphne启动ASGI应用
daphne -b 0.0.0.0 -p 8000 devops_platform.asgi:application
